package com.example.security.service;

import com.example.security.entity.SysPermission;
import java.util.List;
import java.util.Set;

public interface PermissionService {
    /**
     * 获取用户权限列表
     */
    Set<String> getUserPermissions(Long userId);

    /**
     * 获取权限树
     */
    List<SysPermission> getPermissionTree();

    /**
     * 添加权限
     */
    void addPermission(SysPermission permission);

    /**
     * 更新权限
     */
    void updatePermission(SysPermission permission);

    /**
     * 删除权限
     */
    void deletePermission(Long id);

    /**
     * 获取菜单树
     */
    List<SysPermission> getMenuTree();

    /**
     * 刷新权限缓存
     */
    void refreshPermissionCache();

    /**
     * 更新角色权限
     */
    void updateRolePermissions(Long roleId, List<Long> permissionIds);
} 